package com.springboot.config;

import org.springframework.context.ApplicationContextInitializer;
import org.springframework.context.ConfigurableApplicationContext;

/**
 * ApplicationContextInitializer:
 * 用于在应用程序上下文初始化时执行自定义逻辑。具体来说，实现了该接口的类可以在应用程序上下文创建之前动态修改应用程序上下文的行为，比如添加属性源、注册bean定义等。
 * 当应用程序上下文被创建时，Spring会调用所有实现了ApplicationContextInitializer接口的类的initialize()方法，这些类可以执行一些特定的代码来定制应用程序上下文的初始化行为。
 * 与此相关的类通常在Spring Boot中使用，因为Spring Boot允许开发人员自定义应用程序上下文并使用Spring的广泛自动配置以及其他技术。
 * 需要注意的是，ApplicationContextInitializer不应该对ApplicationContext内部进行修改，这可能导致不可预测的行为和错误。它们只应该处理应用程序上下文创建之前的逻辑，以确保应用程序上下文在启动时处于正确的状态。
 *
 * @author yexi
 */
public class CustomApplicationContextInitializer implements ApplicationContextInitializer {
    @Override
    public void initialize(ConfigurableApplicationContext applicationContext) {
        System.out.println("可配置应用上下文即将初始化: " + applicationContext);
    }
}
